package br.ufrj.neg.artigo.bean;

import java.io.Serializable;
import java.util.ArrayList;

import br.ufrj.neg.bean.Idioma;
import br.ufrj.neg.bean.TraducaoBean;
import br.ufrj.neg.constants.TraducaoConstantes;
import br.ufrj.neg.util.Data;


public class ArtigoBean extends TraducaoBean implements Serializable {

	public final String NOME_TABELA = "artigo";
	public final String CAMPO_NOME = getNomeCampos().get(0);
		
	private int id;
	private int ativo;
	private Data dataCadastro;
	private byte[] artigoAsByte;	

	public ArtigoBean(Idioma idioma) {
		super(idioma);		
	}
	
	@Override
	public String toString(){
		return "Id: "+this.id+" Nome: "+this.getNome()+" Data: "+this.dataCadastro+
		" Ativo: "+this.ativo;
	}

	public String getNome() {
		return getDicionario().get(CAMPO_NOME).get(getIdioma());		
	}
	
	public void setNome(String nome) {
		nome = nome.split("\\.")[0]; 
		this.setTraducao( getIdioma(), CAMPO_NOME, nome);		
	}

	public String getAtivo() {
		if(ativo == 0){
			return "<img src=\"/eneg/imagens/delete.gif\"></img>";
		}else if(ativo == 1){
			return "<img src=\"/eneg/imagens/confirm_2.png\"></img>";
		}
		return "";
	}
	
	public String getDownload(){
		return "<a href=\'javascript:downloadArtigo ("+ this.id + ")' ><img src=\"/eneg/imagens/expoNL.png\"></img></a>";
	}
	
	public Data getDataCadastro() {
		return dataCadastro;
	}


	public void setDataCadastro(Data dataCadastro) {
		this.dataCadastro = dataCadastro;
	}


	public byte[] getArtigoAsByte() {
		return artigoAsByte;
	}


	public void setArtigoAsByte(byte[] artigoAsByte) {
		this.artigoAsByte = artigoAsByte;
	}


	//Retorna em Binário
	public int getAtivoB(){
		return this.ativo;
	}
	
	public void setAtivo(int ativo){
		this.ativo = ativo;
	}
	
	public void toggleAtivo() {
		if(this.ativo == 0){
			this.ativo = 1;
		}else if(this.ativo == 1){
			this.ativo = 0;
		}
	}

	@Override
	public int getIdTabela() {
		return TraducaoConstantes.getIdTabela(NOME_TABELA);
	}
	
	@Override
	public ArtigoBean getNewInstance() {		
		return new ArtigoBean( getIdioma() );
	}

	@Override
	public ArrayList<String> getNomeCampos() {
		ArrayList<String> nomeCampos = new ArrayList<String>();
		nomeCampos.add("arti_ds_nome");
		return nomeCampos;		
	}

	@Override
	public ArrayList<String> getLabelCampos() {
		ArrayList<String> labelCampos = new ArrayList<String>();		
		labelCampos.add("negociacao.artigos.listagem.nome_artigo");
		return null;
	}
	

}
